Static and differential precoding codebook for mimo systems

ABSTRACT

Systems and methods are disclosed to generate a codebook for channel state information by generating a random codebook; partitioning channel state information into a set of nearest neighbors for each codebook entry based on a distance metric; and updating the codebook by finding a centroid for each partition.

The present application claims priority to U.S. Provisional Application Ser. No. 60/895,904, filed Mar. 20, 2007, the content of which is incorporated by reference.

The present invention relates to the codebooks used in wireless communications.

BACKGROUND

With an ever growing need for higher data communication rate over wireless medium, users are demanding high rate data transmission. One area in which the aforementioned considerations have arisen is in UMTS Terrestrial Radio Access Network (UTRAN) and Evolved-UTRA, which call for higher user data rates and improved quality of service. A number of proposals have discussed and concluded the need for multiple-antenna systems to achieve the target spectral efficiency, throughput, and reliability of EUTRA. These proposals have considered different modes of operation applicable to different scenarios. The basic assumptions that vary among proposals include (i) using single stream versus multiple streams, (ii) scheduling one user at a time versus multiple users, (iii) having multiple streams per user versus a single stream per user, and (iv) coding across multiple streams versus using independent streams. A common factor among various downlink physical layer multiple-input-multiple-output (MIMO) proposals, however, is a feedback strategy to control the transmission rate and possibly vary the transmission strategy.

MIMO antenna systems can be effective in fading environment by providing significant performance improvements and achievable data rates in comparison to single antenna systems. Closed loop MIMO systems typically transmit channel state information from a receiver to a transmitter. Transmitting the channel state information consumes bandwidth that might otherwise be available for data traffic. The performance gain achieved by multiple antenna system increases when the knowledge of the channel state information (CSI) at each end, either the receiver or transmitter, is increased. Although perfect CSI is desirable, practical systems are usually built only on estimating the CSI at the receiver, and possibly feeding back the CSI to the transmitter through a feedback link with a very limited capacity. Using CSI at the transmitter, the transmission strategy is adapted over space (multiple antennas) and over time (over multiple blocks).

Conventional DL MIMO transmission strategy includes quantized precoding schemes, antenna selection, antenna cycling (with or without rank control), and different space-time coding and spatial multiplexing transmission scheme. The quantized precoding schemes are used whenever a feedback link from the receiver to the transmitter is present. The performance of quantized precoding scheme depends on the codebook design and the complexity and memory requirement are further functions of the precoding algorithm. Hence, codebook design is one of the main aspects of the quantized precoding schemes. The conventional design criterion is based on SNR maximization which is not necessarily the capacity-optimal design strategy. Moreover, the precoder size is assumed to be fixed which means the number of transmitted data streams, i.e., precoding rank, is fixed and is usually taken to be the minimum of the number of transmit and receive antennas.

SUMMARY

In one aspect, a static codebook design provides a successive codebook structure and the precoding matrices are obtained from a set of precoding vector codebooks. This design addresses the problem of optimized vector codebook design, i.e., the set of vector codebooks which result in the optimal precoding matrix codebook.

In another aspect, a different code-book design problem. When the channel is correlated in time (or in frequency, e.g., across different tones in OFDM systems), the correlation can be used to considerably reduce the feedback requirement without loss in performance. The idea of differential codebook is to feedback only the variation in the channel, since typically quantizing the channel variations requires a smaller codebook than quantizing the channel itself.

Advantages of preferred embodiments of the above aspects may include one or more of the following. The design jointly optimizes the vector codebooks such that the resulting precoder matrices are optimized. By employing the differential codebook and optimized vector codebook, the performance of quantized precoding schemes is improved and higher throughput will be achievable. In comparison to the other competitive schemes on codebook based precoding which use the CQI-metric based precoder selection, the codebook requires less memory to store and has lower computational complexity. The optimal codebook is channel specific and is finely tuned to the channel statistics. The vector codebooks can be used with successive or Householder structured codebook. Simulation results show the superiority of the designed codebooks over the conventional codebooks.

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1 is a schematic block diagram of a multiple-antenna communications system with quantized feedback of channel state information.

FIG. 2 schematically illustrates the dependency of variables in the determination of eigenvectors and quantized eigenvectors and the re-creation of quantized eigenvectors in a successive beamforming scheme.

FIG. 3 shows an exemplary codebook generation process.

FIG. 4 shows an exemplary precoder codebook design algorithm.

DESCRIPTION

An exemplary multiple-antenna communication system 100 with static and differential precoding codebook is schematically shown in FIGS. 1-2. A transmitter 110 transmits from t transmitting antennas 111.1-111.t over a fading channel 130 to r receiving antennas 121.1-121.r coupled to a receiver 120. A channel estimator 125 provides an estimate of the channel 130 to the receiver 120. The channel estimate is also quantized and provided to the transmitter 110 via a quantized rate control feedback channel 135.

For a multiple-antenna system with r receive and t transmit antennas the baseband channel model can be expressed as follows: Y=HX+W, (1) where Y is the rx1 received column vector, H is the rxt channel matrix, X is the tx1 transmit column vector, and W is the rx1 noise column vector. The input is subject to an average power constraint P, i.e, tr(Q)≦P, where Q=E[XX^(H)], E[.] denotes the expected value and tr(.) represents the trace of a matrix.

In an exemplary multi-rank beamforming scheme in accordance with the present invention, channel state information (CSI) is available to the transmitter (CSIT) as well as the receiver (CSIR). Where perfect CSIT and CSIR are assumed, the capacity of the multiple-antenna fading channel 130 can be achieved through power adaptation over time (one average power for each channel state) and water-filling power control over multiple eigenvectors of the channel for each block of transmission.

In systems that employ beamforming such as the MIMO systems, the beamforming matrix (referred to herein as a codeword) generated in response to perceived channel conditions is computed and quantized at the receiver first, and then is provided to the source transmitter (e.g., via feedback). A conventional approach to reduce the overhead associated with this feedback is to provide matrix codebook(s) at each of the transmitter and the receiver, each of the codebook(s) comprising a plurality, or set, of potential beamforming matrixes that may be used depending on the channel conditions perceived at the receiver. When the receiver has identified the appropriate matrix codebook(s), the receiver will typically feed back only an index (instead of the actual matrix entries) that points to the appropriate codeword in the codebook(s) stored at the transmitter.

Turning now to FIG. 3, an exemplary process to generate the codebook is shown. In this process, a random codebook is generated (200). Next, the process partitions channel state information into a set of nearest neighbors for each codebook entry based on a distance metric (210). The process then updates the codebook by finding a centroid for each partition (220).

In the MIMO system of FIG. 1 with t transmit antennas at the base station and a user each with r receive antennas, the complex baseband signal model is given by

y=Hx+w,   (1)

where x is the tx1 transmitted signal vector, H is the r×t channel matrix, w:N_(c)(0,I) is a circularly symmetric complex additive white Gaussian noise vector, and y is the r×1 received signal vector. A block fading channel model is used in which the channel remains constant during the transmission of each packet (or codeword of length T) and it changes independently from one block to another, where the distribution of the channel state is known a priori. The average power constraint is given by E[X^(H)X]≦P.

In maximizing the throughput in single user (SU-) MIMO systems (or sum-rate throughput for multiple user (MU-) MIMO systems) which is usually the primary goal in downlink transmissions, the following assumptions can be used: (1) the user feeds back the quantized channel state via a limited feedback link; (2) based on the feedback information, the base station performs a linear precoding (and only linear precoding is allowed) of the transmitted streams.

Let UDV* be the singular value decomposition (SVD) of the channel matrix H. With B bits of feedback, the user quantizes the first n column of V (where n≦min(r, t)) is a fixed number predetermined by the base station) using a quantization codebook Q={Q₁, Q₂, . . . , Q₂ _(B) }, Q_(i)εC^(txr), as follows

$\begin{matrix} {{V\left( {1\text{:}n} \right)} = {\arg \; {\min\limits_{Q \in Q}\; {d\left( {{V\left( {1\text{:}n} \right)},Q} \right)}}}} & (2) \end{matrix}$

where d(·,·) is some distance metric. The codebook design problem and the appropriate choice of the distance metric have been considered in prior art. The columns of the quantized precoding matrix V(1:n) correspond to possible different streams for this user.

The transmitted signal x from the base station then consists of L data streams, u₁, U₂, . . . , u, sent through column vectors g₁,g₂, . . . , g_(L) of a linear precoder G. We have

$\begin{matrix} {x = {{Gu} = {\sum\limits_{i = 1}^{L}{u_{i}{g_{i}.}}}}} & (3) \end{matrix}$

In SU-MIMO systems, we have L=n while in MU-MIMO systems we have L≧n where one or more than one streams may be intended for each user.

Next, a codebook design will be discussed which is static and predesigned and does not adopt to the changes in the average channel condition. The first design considers rank specific codebook design where for each transmission rank a separate codebook is designed. The second design is based on transformation which generates the codebooks for all ranks based on a set of vector codebook.

Design Criterion

For a given transmission rank n and B bits of PMI feedback, the codebook design problem is formulated as finding the set Q={Q₁, Q₂, . . . , Q₂ _(B) } of (t×n) semi-unitary matrices that is a solution to the optimization problem given by

$\begin{matrix} {C = {\max\limits_{Q}{{E\left\lbrack {\max\limits_{Q \in Q}{\log \; {\det\left( {I + {\frac{P}{t}{HQQ}^{*}H^{*}}} \right)}}} \right\rbrack}.}}} & (4) \end{matrix}$

Let UDV* be the partial SVD of H obtained by retaining only the n right singular vectors that correspond to the n largest singular values of H. For a given H the optimal (t×n) precoder that maximizes the instantaneous mutual information is V, thus, for large enough codebook size:

$\begin{matrix} {C \approx {\max\limits_{Q}{{E\left\lbrack {\max\limits_{Q \in Q}{\log \; {\det \left( {I + {\frac{P}{t}\left( {D^{*}D} \right)V^{*}{QQ}^{*}V}} \right)}}} \right\rbrack}.}}} & (5) \end{matrix}$

The approximation in (5) is based on the observation that a well designed large enough codebook can closely sample the set of all possible V.

Next, an approximate upper bound on C is determined by considering channel realizations whose norms are bounded, i.e., H such that ∥H∥_(F) ²=tr[H*H]=tr[D*D]≦β. For such channels:

$\begin{matrix} {C < \approx {\max\limits_{Q}{{E\left\lbrack {\max\limits_{Q \in Q}{\log \; {\det\left( {I + \; {\frac{P}{t}\beta \; V^{*}{QQ}^{*}V}} \right)}}} \right\rbrack}.}}} & (6) \end{matrix}$

Considering the low SNR approximation of the bound in (6), i.e., letting P→0,

$\begin{matrix} {C < \approx {\max\limits_{Q}{{E\left\lbrack {\max\limits_{Q \in Q}{\frac{P\; \beta}{t}{{V^{*}Q}}_{F}^{2}}} \right\rbrack}.}}} & (7) \end{matrix}$

The inner maximization in the bound in (7) is equivalent to minimizing the chordal distance between the dominant right eigenvectors of the channel and the corresponding quantized vectors, where the chordal distance is defined as

$\begin{matrix} {{d_{chordal}\left( {Q,V} \right)} = {{\frac{1}{\sqrt{2}}{{{VV}^{*} - {QQ}^{*}}}_{F}} = {\sqrt{t - {{V^{*}Q}}_{F}^{2}}.}}} & (8) \end{matrix}$

On the other hand, considering the high SNR approximation of (6), i.e., P→∞:

$\begin{matrix} {C < \approx {\max\limits_{Q}{{E\left\lbrack {\max\limits_{Q \in Q}{\log \left( {\left( \frac{P\; \beta}{t} \right)^{n}{\det \left( {V^{*}Q} \right)}^{2}} \right)}} \right\rbrack}.}}} & (9) \end{matrix}$

The inner maximization in the bound in (9) is equivalent to minimizing the Fubini-Study (FS) distance between the dominant right eigenvectors of the channel and the corresponding quantized vectors, where the FS distance is defined as

d _(FS)(Q,V)=arc cos(det(V*Q)).   (10)

This is so because log(.) is a monotonically increasing function and arc cos(.) is a monotonically decreasing function.

For finite SNRs, since the transmitted signals are the linear combination of the columns of the precoder Q, the precoding codebook design used here relies on a metric that measures the distance between the subspaces spanned by different precoders. While there is no known distance metric directly associated with the capacity expression (5), the inner maximization in the bound in (6) is equivalent to minimizing the following p-metric with

$p = \frac{\beta \; P}{t}$

$\begin{matrix} {{d_{p}\left( {Q,V} \right)} = {\arccos \left\lbrack \frac{\det \left( {I + {{pV}^{*}{QQ}^{*}V}} \right)}{\left( {1 + p} \right)^{r}} \right\rbrack}} & (11) \end{matrix}$

between the subspaces defined by V and Q on the Grassmanian manifold G(N_(T),r) which in turn is the space of all r dimensional subspaces of an N_(T) dimensional vector space. The design based on the p-metric depends on the SNR level. The choice of β is discussed next. p-metric is in fact a valid distance metric in the Grassmanian manifold. Moreover, it can be readily verified that if p→0, the p-metric is equivalent to the chordal distance; and if p→∞, the p-metric is equivalent to the Fubini-Study distance. Therefore, the codebook design based on the p-metric bridges the gap between the design for low SNR and that for high SNR.

Rank Specific Codebook Design

In this section, the design of an independent codebook for each rank r is discussed. The design algorithm is based on the generalized Lloyd-Max algorithm that is a widely used for solving a variety of vector quantization problems. Given the quantization codebook Q={Q₁, Q₂, . . . , Q₂ _(B) }, the optimal partitioning satisfies

V _(k) ={VεC ^(txn) :d _(p)(V,Q _(k))≦d_(p)(V,Q _(j)),∀j≠k}.   (12)

To satisfy the centroid condition, the following problem is solved for the k^(th) partition

$\begin{matrix} {Q_{k} = {{\arg \; \min \; {J(Q)}} = {\arg \; {\min\limits_{{Q \in C^{txn}},{{Q^{*}Q} = I}}{E{\left\lfloor {d_{p}\left( {Q,V} \right)} \middle| {{V \in}_{k}} \right\rfloor.}}}}}} & (13) \end{matrix}$

Since an analytical solution for the above optimal centroid problem does not exist, this is solved numerically. To employ the gradient-descent search algorithm, the real representation of the matrix Q denoted by Q is defined as

$\begin{matrix} {\overset{\_}{Q} = {\begin{bmatrix}  & {- (Q)} \\ {(Q)} & {(Q)} \end{bmatrix}.}} & (14) \end{matrix}$

The real representation H, V of the matrices H, V, respectively, are similarly defined. Also, the system can parameterize the semi-unitary matrix QεC^(txn) by using N_(Φ)=2(t−n+1)n independent real parameters φ_(i), i=1, . . . , N_(Φ). Therefore, an unconstrained problem can be obtained in terms of the vector Φ=[φ₁, φ₂, . . . , φ_(N) _(Φ) ]:

$\begin{matrix} \begin{matrix} {{\min\limits_{{Q \in C^{txn}},{{Q^{*}Q} = I}}{J(Q)}} = {\min\limits_{\Phi}{J\left( {Q(\Phi)} \right)}}} \\ {= {\min\limits_{\Phi}{{E\left\lbrack {d_{p}\left( {{\overset{\_}{Q}(\Phi)},\overset{\_}{V}} \right)} \middle| {{V \in}_{k}} \right\rbrack}.}}} \end{matrix} & (15) \end{matrix}$

The derivative of the objective function (15) with respect to φ_(k) is given by

$\begin{matrix} {{{{\frac{\partial}{\partial\varphi_{k}}{J\left( {\overset{\_}{Q}(\Phi)} \right)}} = {{tr}\left\{ {\left\lbrack \frac{\partial{\overset{\_}{Q}(\Phi)}}{\partial\varphi_{k}} \right\rbrack^{T}{\nabla_{\overset{\_}{Q}}{J\left( \overset{\_}{Q} \right)}}} \right\}}},{1 \leq k \leq N_{\Phi}}}{where}} & (16) \\ \begin{matrix} {{\nabla_{\overset{\_}{Q}}{J\left( \overset{\_}{Q} \right)}} = {E\left\lbrack \begin{matrix} {- \frac{\left( {1 - F^{2}} \right)^{{- 1}/2}}{\left( {1 + p} \right)^{r}}} \\ {\nabla_{Q}{\det \left( {I + {p\; {\overset{\_}{V}}^{T}\overset{\_}{Q}\; {\overset{\_}{Q}}^{T}\overset{\_}{V}}} \right)}} \end{matrix} \middle| {{V \in}_{k}} \right\rbrack}} \\ {{= {E\left\lbrack \begin{matrix} {{- 2}\; p\; {F\left( {1 - F^{2}} \right)}^{{- 1}/2}\overset{\_}{V}{\overset{\_}{V}}^{T}} \\ {\overset{\_}{Q}\left( {I + {p\; {\overset{\_}{V}}^{T}\overset{\_}{Q}\; {\overset{\_}{Q}}^{T}\overset{\_}{V}}} \right)}^{- 1} \end{matrix} \middle| {{V \in}_{k}} \right\rbrack}},} \end{matrix} & {(17)(18)} \end{matrix}$

with

$F = {\frac{\det \left( {I + {p\; {\overset{\_}{V}}^{T}\overset{\_}{Q}\; {\overset{\_}{Q}}^{T}V}} \right)}{\left( {1 + p} \right)^{r}}.}$

The expression

$\frac{\partial{\overset{\_}{Q}(\Phi)}}{\partial\varphi_{k}}$

can be found using standard techniques. The gradient-descent search algorithm can be used with the following update formula

Φ^((l+1))=Φ^((l))−μ_(l)∇_(Φ) J( Q (Φ)|_(Φ) _((l))   (19)

where μ_(l) is the sequence of the step sizes. Upon convergence, Φ is used to find the corresponding unitary matrix Q(Φ).

In sum, as shown in FIG. 4, the precoder codebook design algorithm is as follows:

Input: SNR_(ave), μ_(l), codebook size 2^(B), Iteration_(max), rank r Output: The codebook Q = {Q₁,Q₂, ..., Q₂ _(B) } Generate an evaluation set {H^((l))}_(l = 1) ^(Size) based on the channel distribution. Let ${p = {\frac{{SNR}_{ave}}{r}{\max_{k}\left\{ {H^{(1)}}_{p}^{2} \right\}}}};$ Initialize the codebook Q(0) = {Q₁(0), Q₂(0), ..., Q₂ _(B) (0)} randomly; for i = 1 to Iteration_(max) do Given Q(i − 1), find {V_(k)(i), k = 1, 2, ..., 2^(B)} using (12); Calculate the centroid {Q_(k)(i), k =1, 2, ..., 2^(B)} using (16)-(19); end return Q(Iteration_(max))

Nested Vector Codebook Design

In this embodiment, the system imposes a structure on the codebook which facilitates implementation of the precoding scheme in a practical system by reducing the computational complexity as well as the memory requirement. Denote

$e_{k} = \left\lbrack {1;\underset{k - 1}{\underset{}{0;\ldots \;;0}}} \right\rbrack$

Note that by applying a series of successive rotations, any semi-unitary matrix QεC^(txn) can be expressed as

$\begin{matrix} {Q = \left\lbrack {q^{(1)},{\left( {\mathrm{\Upsilon}_{1}\left( q^{(1)} \right)} \right)^{*}\begin{bmatrix} 0 \\ {q^{(2)},{\left( {\mathrm{\Upsilon}_{2}\left( q^{(2)} \right)} \right)^{*}\begin{bmatrix} {0\;} \\ {q^{(3)},\ldots} \end{bmatrix}}} \end{bmatrix}}} \right\rbrack} & (20) \end{matrix}$

where γ_(k):C^(t−k+1)→C^((t−k+1)×(t−k+1)) is a mapping that for any unit-norm vector q^((k))εC^(t−k+1) returns a rotation matrix γ_(k)(q^((k))) such that γ_(k)(q^((k)))q^((k))=e_(t−k+1). Therefore, instead of designing the codebook of precoding matrices Q, the vector codebooks contains all the vectors q^((k)).

Consider N_(T)−1 sets of unit-norm vectors in Q⁽¹⁾={q_(i) ⁽¹⁾}_(t=1) ^(k) ¹ ⊂C^(t), Q⁽²⁾={q_(i) ⁽²⁾}_(i=1) ^(k) ² ⊂C^(t−1), . . . m Q^((t−1))={q_(i) ^((t−1))}_(i=1) ^(j) ^(t−1) ⊂C². If Q^((t))=1, for rotations, the Householder transformation defined by

${\Psi (x)} = {I - \frac{2{xx}^{*}}{{x}^{2}}}$

can be used and let

$\begin{matrix} {\begin{matrix} {{\mathrm{\Upsilon}_{k}\left( q^{(k)} \right)} = {\Psi \left( {q^{(k)} - e_{t - k + 1}} \right)}} \\ {= {1 - \frac{2\left( {q^{(k)} - e_{t - k + 1}} \right)\left( {q^{(k)} - e_{t - k + 1}} \right)^{*}}{{{q^{(k)} - e_{t - k + 1}}}^{2}}}} \end{matrix}\quad} & (21) \end{matrix}$

To have a valid Householder transformation in the complex domain, the first element of the vector x has to be real valued. The codebook of rank r consists of the set of π_(i=1) ^(r)K_(i) precoding matrices of size t x n generated using the vector codebooks defined above. The size of the vector sets, i.e., K₁, K₂, . . . , K_(t−1), are the design parameters and are usually chosen such that K₁≧K₂≧ . . . ≧K_(t−1). For example, to design a set of 12 precoders of rank 2, K₁=4 and K₂=3. By choosing the indices i₁, i₂, . . . , i_(r), i_(j)ε{1,2, . . . , K_(j)} of the vectors from Q⁽¹⁾, Q⁽²⁾, . . . , Q^((r)), any precoder of rank r, r=1,2, . . . , t−1, is generated as

$\begin{matrix} {{Q\left( {q_{i_{1}}^{(1)},q_{i_{2}}^{(2)},\ldots \;,q_{i_{r}}^{(r)}} \right)} = {\left\lbrack {q_{i_{1}}^{(1)},{{\Psi \left( {q_{i_{1}}^{(1)} - e_{t}} \right)}\begin{bmatrix} 0 \\ q_{i_{2}}^{(2)} \end{bmatrix}}, \ldots \;,{{\Psi\left( {\overset{(1)}{q_{i_{1}}} - e_{t}} \right)}\begin{bmatrix} 0 \\ {{{\Psi \left( {q_{i_{2}}^{(2)} - e_{t - 1}} \right)}\mspace{11mu} {\ldots \begin{bmatrix} 0 \\ q_{t_{r}}^{(r)} \end{bmatrix}}\mspace{11mu} \ldots}\mspace{11mu}} \end{bmatrix}}} \right\rbrack.}} & (22) \end{matrix}$

The optimization is performed over the vector codebooks Q⁽¹⁾, Q⁽²⁾, . . . , Q^((t−1)). The partitioning and centroid steps for the first vector codebook are given by

Partitioning: Given the quantization codebook Q⁽¹⁾={q₁ ⁽¹⁾,q₂ ⁽¹⁾, . . . , q_(k) ₁ ⁽¹⁾}, the optimal partitioning satisfies

V _(k) ⁽¹⁾ ={vεC ^(tx1) :d _(p)(v,q _(k) ⁽¹⁾)≦d _(p)(v,q _(j) ⁽¹⁾), ∀j≠k}  (23)

Centroid: The centroid for the k^(th) partition is given by

$\begin{matrix} {q_{k}^{(1)} = {\arg \mspace{14mu} {\min\limits_{{q \in C^{{tx}\; 1}},{{q^{*}q} = 1}}{{E\left\lbrack {{d_{p}\left( {q,v} \right)}{v \in V_{k}^{(1)}}} \right\rbrack}.}}}} & (24) \end{matrix}$

where the expectation is taken over the dominant singular vector v.

For the second codebook, a set of doubly indexed partitions can be used, where each partition is identified by two vectors in the first and the second vector codebooks Q⁽¹⁾ and Q⁽²⁾. The partitioning and centroid steps are then as follows.

Partitioning: Given the quantization codebooks Q⁽¹⁾={q₁ ⁽¹⁾, q₂ ⁽¹⁾, . . . , q_(k) ₁ ⁽¹⁾} and Q⁽²⁾={q₁ ⁽²⁾,q₂ ⁽²⁾, . . . , q_(k) ₂ ⁽²⁾}, the optimal partitioning satisfies

$\begin{matrix} {v_{i_{1},i_{2}}^{(2)} = {\left\lbrack {{V^{(2)} = {\left\lbrack {v^{(1)}v^{(2)}} \right\rbrack \in {{\mathbb{C}}^{t \times 2}:{{d_{p}\left( {V^{(2)},\left\lbrack {q_{i_{1}}^{(1)},{{\Psi \left( {q_{i_{1}}^{(1)} - e_{t}} \right)}\begin{bmatrix} 0 \\ q_{i_{2}}^{(2)} \end{bmatrix}}} \right\rbrack} \right)} \leq {d_{p}\left( {V^{(2)},\left\lbrack {q_{j_{1}}^{(1)},{{\Psi \left( {q_{j_{1}}^{(1)} - e_{t}} \right)}\begin{bmatrix} 0 \\ q_{j_{2}}^{(2)} \end{bmatrix}}} \right\rbrack} \right)}}}}},{\forall{\left( {j_{1},j_{2}} \right) \neq \left( {i_{1},i_{2}} \right)}}} \right\}.}} & (25) \end{matrix}$

Centroid: The centroid corresponding to index i₂ is given by

$\begin{matrix} {q_{i_{2}}^{(2)} = {\arg \mspace{25mu} {\min\limits_{{q \in {{\mathbb{C}}^{{({t - 1})} \times 1}:{q^{*}q}}} = 1}{\sum\limits_{i_{1} = 1}^{K_{1}}{{\left( {{d_{p}\left( {\left\lbrack {q_{i_{1}}^{(1)},{{\Psi \left( {q_{i_{1}}^{(1)} - e_{t}} \right)}\begin{bmatrix} 0 \\ q \end{bmatrix}}} \right\rbrack,V^{(2)}} \right)}{\mathcal{I}\left( {V^{(2)} \in v_{i_{1},i_{2}}^{(2)}} \right)}} \right\rbrack}.}}}}} & (26) \end{matrix}$

where the expectation is over the first two dominant eigenvectors, i.e., V⁽²⁾ and I(.) denotes the indicator function.

In general, in finding the partitioning for the r^(th) vector codebook Q^((r)), a set of r-tuple indexed partitions is defined and the partitioning and centroid conditions follows the same structure as above. A design procedure similar to Algorithm of FIG. 3 can be used to find the vector codebooks.

Differential Codebook Design

When the channel is correlated in time (or in frequency, e.g., across different tones in OFDM systems), the correlation can be used to considerably reduce the feedback requirement without loss in performance. The idea of differential codebook is to feedback only the variation in the channel, since typically quantizing the channel variations requires a smaller codebook than quantizing the channel itself.

Let V(s) denote the quantized version of the first N right eigenvectors of the channel matrix H(s)=U(s)D(s)V*(s) at time s using the static quantized codebook design previously discussed. For time s+1, we then find V(s+1)=OV(s+1) by using a t×t unitary transformation matrix O. With B bits of feedback, the differential codebook design is formulated as finding the set of O={O₁,O₂, . . . , O₂ _(B) } unitary matrices such that the average quantization error defined by

ε=E[∥O(V(s), V(s+1))V(s)−V(s+1)∥_(F) ²]  (27)

is minimized where O(V(s),V(s+1)) denotes the transformation as a function of the right eigenvectors of the channel for two consecutive time slots.

In order to employ the Lloyed-Max algorithm, the system finds the optimal partitioning and the centroid for each partition. The optimal partitioning for the quantizer O(V(s),V(s+1)) satisfies

V _(k)={({circumflex over (V)}, V)εC ^(txr) ×C ^(txr) : ∥O _(k) {circumflex over (V)}−V∥ _(F) ² ≦∥O _(j) {circumflex over (V)}−V∥ _(F) ² ∀j≠k},   (28)

where {circumflex over (V)} and V denote the quantized and the actual right eigenvectors of the channel for two consecutive time slots, respectively. To satisfy the centroid condition, the following problem for the k^(th) partition is solved:

$\begin{matrix} {\arg \mspace{25mu} {\min\limits_{{O \in C^{M \times M}},{{O^{*}O} = I}}\mspace{11mu} {{E\left\lbrack {{{O\; \hat{V}} - V}}_{F}^{2} \middle| {\left( {V,V} \right) \in V_{k}} \right\rbrack}.}}} & (29) \end{matrix}$

Since ∥O{circumflex over (V)}−V∥_(F) ²=V∥_(F) ²−2

etr{V{circumflex over (V)}*O*}+∥{circumflex over (V)}∥_(F) ², the following is maximized

$\begin{matrix} {{E\left\lbrack {\Re \; {etr}\left\{ {V\; {\hat{V}}^{*}O^{*}} \right\}} \middle| {\left( {\hat{V},V} \right) \in V_{k}} \right\rbrack} = {{\Re \; {etr}\left\{ {{E\left\lbrack {V\; \hat{V}} \middle| {\left( {\hat{V},V} \right) \in V_{k}} \right\rbrack}O^{*}} \right\}} = {{\Re \; {etr}\left\{ {\Theta {\sum{\Phi^{*}O^{*}}}} \right\}} = {{\Re \; {etr}\left\{ {\sum{\Phi^{*}O^{*}\Theta}} \right\}} = {\Re \; e\; {\sum\limits_{i = 1}^{M}{\sigma_{i}s_{ii}}}}}}}} & (30) \end{matrix}$

where

ΣΦ*=SVD(E└V{circumflex over (V)}*∥({circumflex over (V)},V)εV_(k)┘)and T=[s_(ij)]=Φ*O*

is a unitary matrix. Thus, (30) is maximized when all s_(ii)=1, i.e., when O=

Φ*. It should be noted that since the final solution depends only on

Φ*, it can be obtained directly through the polar decomposition of E└VV*({circumflex over (V)},V)εV_(k)┘ instead of the SVD.

The idea behind differential quantization is to use B₁ bits for the main quantizer and B₂<B₁ bits for the differential quantizer. For example, in OFDM systems, when the precoder is used for a chunk of adjacent OFDM tones, the precoding is usually much more effective if the chunk size is smaller. Hence, if B bits are available for precoding across a large chunk of adjacent OFDM tones, the chunk is usually broken into several smaller, e.g., 3 sub-chunks of the same sizes where the precoder for each sub-chunk is specified with B/3 bits. However, considering the correlation between the adjacent sub-chunks, we can use a main quantizer with B₁>B/3 bits for quantizing the center sub-chunk and use a differential codebook with B₂<B/3 bits for quantizing of each of the other two sub-chunks, where B=B₁+2B₂, and B₂<B₁. Depending on the correlation structure we can usually pick B₂<B₁ such that the precoding performance of all three sub-chunks is almost similar.

The invention may be implemented in hardware, firmware or software, or a combination of the three. Preferably the invention is implemented in a computer program executed on a programmable computer having a processor, a data storage system, volatile and non-volatile memory and/or storage elements, at least one input device and at least one output device.

Each computer program is tangibly stored in a machine-readable storage media or device (e.g., program memory or magnetic disk) readable by a general or special purpose programmable computer, for configuring and controlling operation of a computer when the storage media or device is read by the computer to perform the procedures described herein. The inventive system may also be considered to be embodied in a computer-readable storage medium, configured with a computer program, where the storage medium so configured causes a computer to operate in a specific and predefined manner to perform the functions described herein.

The invention has been described herein in considerable detail in order to comply with the patent Statutes and to provide those skilled in the art with the information needed to apply the novel principles and to construct and use such specialized components as are required. However, it is to be understood that the invention can be carried out by specifically different equipment and devices, and that various modifications, both as to the equipment details and operating procedures, can be accomplished without departing from the scope of the invention itself. 

1. A method to generate a codebook for channel state information, comprising: a. generating a random codebook; b. partitioning channel state information into a set of nearest neighbors for each codebook entry based on a distance metric; and c. updating the codebook by finding a centroid for each partition.
 2. The method of claim 1, comprising optimizing the codebook.
 3. The method of claim 1, wherein the codebook Q comprises {Q₁, Q₂, . . . , Q₂ _(B) }, comprising determining an optimal partitioning satisfying V _(k) ={VεC ^(txr) :d _(p)(V,Q _(k))≦d _(p)(V,Q _(j)),∀j≠k}
 4. The method of claim 1, comprising determining the centroid by solving for the k^(th) partition $Q_{k} = {{{argmin}\; {J(Q)}} = {\arg \mspace{14mu} {\min\limits_{{Q \in C^{txr}},{{Q^{*}Q} = I}}{E{\left\lfloor {d_{p}\left( {Q,V} \right)} \middle| {V \in V_{k}} \right\rfloor.}}}}}$
 5. The method of claim 1, comprising determining an optimal partitioning satisfying V_(k) ⁽¹⁾ ={vεC ^(tx1) :d _(p)(v,q _(k) ⁽¹⁾)≦d _(p)(v, q _(j) ⁽¹⁾),∀j≠k}
 6. The method of claim 1, comprising determining the centroid for the k^(th) partition by $q_{k}^{(1)} = {\arg \mspace{14mu} {\min\limits_{{q \in c^{tx1}},{{q^{*}q} = 1}}\; {{E\left\lbrack {d_{p}\left( {q,v} \right)} \middle| {v \in V_{k}^{(1)}} \right\rbrack}.}}}$
 7. The method of claim 1, comprising generating a set of doubly indexed partitions.
 8. The method of claim 7, wherein each partition is identified by two vectors in the first and the second vector codebooks Q⁽¹⁾ and Q⁽²⁾.
 9. The method of claim 1, comprising determining an optimal partitioning satisfying $v_{i_{1},i_{2}}^{(2)} = {\left\lbrack {{V^{(2)} = {\left\lbrack {v^{(1)}v^{(2)}} \right\rbrack \in {{\mathbb{C}}^{t \times 2}:{{d_{p}\left( {V^{(2)},\left\lbrack {q_{i_{1}}^{(1)},{{\Psi \left( {q_{i_{1}}^{(1)} - e_{t}} \right)}\begin{bmatrix} 0 \\ q_{i_{2}}^{(2)} \end{bmatrix}}} \right\rbrack} \right)} \leq {d_{p}\left( {V^{(2)},\left\lbrack {q_{j_{1}}^{(1)},{{\Psi \left( {q_{j_{1}}^{(1)} - e_{t}} \right)}\begin{bmatrix} 0 \\ q_{j_{2}}^{(2)} \end{bmatrix}}} \right\rbrack} \right)}}}}},{\forall{\left( {j_{1},j_{2}} \right) \neq \left( {i_{1},i_{2}} \right)}}} \right\}.}$
 10. The method of claim 1, comprising determining the centroid for the k^(th) partition by $q_{i_{2}}^{(2)} = {\arg \; {\min\limits_{{q \in {\mathbb{C}}^{{({t - 1})} \times 1}},{{q^{*}q} = 1}}{\sum\limits_{i_{1} = 1}^{K_{1}}{{\left\lbrack {{d_{p}\left( {\left\lbrack {q_{i_{1}}^{(1)},{{\Psi \left( {q_{i_{1}}^{(1)} - e_{t}} \right)}\begin{bmatrix} 0 \\ q \end{bmatrix}}} \right\rbrack,V^{(2)}} \right)}{\mathcal{I}\left( {V^{(2)} \in v_{i_{1},i_{2}}^{(2)}} \right)}} \right\rbrack}.}}}}$
 11. The method of claim 1, wherein the codebook design is static.
 12. The method of claim 3, wherein the codebook is a rank specific codebook.
 13. The method of claim 1, wherein the codebook is a nested vector codebook.
 14. The method of claim 1, wherein the codebook comprises a differential codebook.
 15. The method of claim 15, wherein the differential codebook provides feedbacks only on variations in the channel.
 16. The method of claim 1, comprising applying Lloyd-Max technique.
 17. The method of claim 1, comprising determining an optimal partitioning by satisfying: V _(k)={({circumflex over (V)}, V)εc^(txr) ×C ^(txr) ∥O _(k) {circumflex over (V)}−V∥ _(F) ² ≦O _(j) {circumflex over (V)}−V∥ _(F) ² , ∀j≠k}.
 18. The method of claim 1, comprising maximizing: ${E\left\lbrack {\Re \; {etr}\left\{ {V\; {\hat{V}}^{*}O^{*}} \right\}} \middle| {\left( {\hat{V},V} \right) \in V_{k}} \right\rbrack} = {{\Re \; {etr}\left\{ {{E\left\lbrack {V\; \hat{V}} \middle| {\left( {\hat{V},V} \right) \in V_{k}} \right\rbrack}O^{*}} \right\}} = {{\Re \; {etr}\left\{ {\Theta {\sum{\Phi^{*}O^{*}}}} \right\}} = {{\Re \; {etr}\left\{ {\sum{\Phi^{*}O^{*}\Theta}} \right\}} = {\Re \; e\; {\sum\limits_{i = 1}^{M}{\sigma_{i}s_{ii}}}}}}}$ where

ΣΦ*=SVD(E└V{circumflex over (V)}* ({circumflex over (V)},V)εV_(k)┘) and T=[s_(ij)]=Φ*O*

is a unitary matrix.
 19. A wireless system, comprising a. One or more transmitters; b. One or more receivers each having multiple input/multiple output (MIMO) antennas adapted to receive data from the one or more transmitters, and c. a codebook formed by generating a random codebook; partitioning channel state information into a set of nearest neighbors for each codebook entry based on a distance metric; and updating the codebook by finding a centroid for each partition.
 20. The system of claim 19, wherein the codebook is generated using a Lloyd-Max technique. 